foreach 语句

假设我们效力于制造商,需要清点仓库,以确定目前拥有的准备发货的成品编号。除成品总计之外,我们可能还想要打印仓库中的桶数和每个桶的小计。成品就存储在这些桶中。这一小计打印输出可以创建审查足迹,让我们能够核对工作并识别库存量缩减。

使用 foreach 遍历数组

foreach 语句遍历数组中的每个元素,在其声明下运行代码块,并将临时变量中的值替换为当前循环表示的数组值。

string[] names = { "Bob", "Conrad", "Grant" };
foreach (string name in names)
{
    Console.WriteLine(name);
}

foreach 关键字下,包含 Console.WriteLine(name); 的代码块将为 names 数组的每个元素执行一次。当 .Net 运行时遍历数组的每个元素时,将存储在 names 数组的当前元素中的值分配给临时变量 name,以便能轻松访问代码块。

如果运行代码,将看到以下结果。

Bob
Conrad
Grant

让我们使用 foreach 语句来创建仓库里每个 bin 中现有的全部项目的总和。

创建并初始化 int 数组

创建一个 int 数组,该数组将存储每个 bin 中的成品编号。

int[] inventory = { 200, 450, 700, 175, 250 };

添加 foreach 语句以循环访问数组

接下来,添加一个用于循环访问 inventory 数组中每个元素的 foreach 语句,并暂时将当前元素的值分配给变量 items

int[] inventory = { 200, 450, 700, 175, 250 };

foreach (int items in inventory)
{

}

添加变量以对数组中每个元素的值求和

定义一个新变量,该变量表示仓库中所有成品的总和。请确保将其添加到 foreach 语句的外部。

int sum = 0;

foreach 语句内部,添加以下代码行,以将 items 中存储的当前值添加到 sum 变量中。

sum += items;
int[] inventory = { 200, 450, 700, 175, 250 };
int sum = 0;
foreach (int items in inventory)
{
    sum += items;
}

显示总和的最终值

在 foreach 语句的代码块下面,添加以下语句,该语句打印库存中各项的最终总和。

Console.WriteLine($"We have {sum} items in inventory.");

请确保代码与以下代码段相匹配。

int[] inventory = { 200, 450, 700, 175, 250 };
int sum = 0;
foreach (int items in inventory)
{
    sum += items;
}

Console.WriteLine($"We have {sum} items in inventory.");

运行代码后,应看到以下输出。

We have 1775 items in inventory.

创建一个变量,用于存储当前桶编号并显示小计

为满足最终要求,我们需要创建一个变量,用于存储 foreach 语句的当前迭代数,从而显示桶和该桶中的成品数,以及目前为止进行了计数的所有桶项的小计。

foreach 语句的上方,声明并初始化类型为 int 的新变量,存储正在处理其库存的 bin 的当前编号。

int bin = 0;

foreach 代码块内部,每次执行代码块时都会递增 bin。

bin++;

++ 运算符将变量的值增加 1。编写 bin = bin + 1 的快捷方式。

最终,在 foreach 中,以格式整洁的消息显示桶、其中的成品数量以及成品数量小计。

Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");

请确保代码与以下代码段相匹配。

int[] inventory = { 200, 450, 700, 175, 250 };
int sum = 0;
int bin = 0;
foreach (int items in inventory)
{
    sum += items;
    bin++;
    Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
}
Console.WriteLine($"We have {sum} items in inventory.");

运行代码,应看到以下输出。

Bin 1 = 200 items (Running total: 200)
Bin 2 = 450 items (Running total: 650)
Bin 3 = 700 items (Running total: 1350)
Bin 4 = 175 items (Running total: 1525)
Bin 5 = 250 items (Running total: 1775)
We have 1775 items in inventory.

概括

关于本单元介绍的 foreach 语句和其他内容,需要谨记以下几点。